package org.iogame.data;

import org.iogame.dto.ClassInfo;
import org.iogame.dto.MethodInfo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 所有数据的结果映射
 * @author lc
 * @since 2022/10/13
 */
public final class DataMap {


    /**
     * k 类名_ :  v 类下面的所有方法
     **/
    public final static HashMap<String, List<MethodInfo>> MAP = new HashMap<>();

    /** 保存类的信息 */
    public final static List<ClassInfo> CLASS_INFO_LIST = new ArrayList<>();


    /**
     * k：类名+方法名，v: 路由 map
     **/
    public static final HashMap<String, Integer> ROUTER_MAP = new HashMap<>();


    /**
     * k：路由，v: 映射结果  需要反射的路由clsMap,用于回传给前端框架
     **/
    public static final HashMap<Integer, Class<?>> ROUTER_CLS_MAP = new HashMap<>();


    /**
     * k：类名+方法名，v: 参数对象，目前只支持对象，不支持基本类型，排除了: FlowContext 类型参数
     **/
    public static final HashMap<String, Object> PARAM_MAP = new HashMap<>();


    /**
     * 结果映射器,保存Io-Game发送前的数据。
     * @since 2022/10/13
     */
    public static final HashMap<Integer,Object> MERGE_MAP = new HashMap<>();

}
